<?

error_reporting("0");
/*
$DB_HOST = "localhost";
$DB_USER_NAME = "workManager";
$DB_PASSWORD = "uiroqkfxla@1!";
*/

$DB_HOST = "127.0.0.1";
$DB_USER_NAME = "root";
$DB_PASSWORD = "apmsetup";

$DB_NAME = "a11y";


$dbConn = "";
$userid = "";
$username = "";
$partcode = "";
$partboss = "";
$teamboss = "";

/*
	Function Name : alert
	Usage : Bootstrap Modal 얼럿 메세지 띄움
	Arguments : string[헤더메세지], string[에러메세지], string[리다이렉트URL]
	Return : null
*/
function alert(){
	$args = func_get_args();
	
	echo "<script type=\"text/javascript\" src=\"https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js\"></script>";
	echo "<script type=\"text/javascript\" src=\"/tools/a11y/bootstrap/js/bootstrap.js\"></script>";
	echo "<link type=\"text/css\" rel=\"stylesheet\" href=\"/tools/a11y/bootstrap/css/bootstrap.css\" />";
	echo "<script type=\"text/javascript\" src=\"/tools/a11y/js/common.js\"></script>";
	echo "<script type=\"text/javascript\">alertM(\"$args[0]\", \"$args[1]\", \"$args[2]\");</script>";
}

/*
	Function Name : connectDB
	Usage : DB에 접속
	Arguments : null
	Return : resource $dbConn
*/
function connectDB(){
	global $DB_HOST, $DB_USER_NAME, $DB_PASSWORD, $DB_NAME, $dbConn;
	
	$dbConn = mysql_connect($DB_HOST, $DB_USER_NAME, $DB_PASSWORD) or alert("데이터베이스 연결 에러","데이터 베이스 연결에 알 수 없는 문제가 생겼습니다.");
	mysql_query("set names utf8");
	
	if($dbConn){
		mysql_select_db($DB_NAME, $dbConn) or alert("데이터베이스 테이블 에러", "데이터 베이스 테이블에 접근 할 수 없습니다.");
		return $dbConn;
	}else{
		alert("데이터베이스 연결 에러","데이터 베이스 연결에 알 수 없는 문제가 생겼습니다.");
	}
	
	return $dbConn;
}


/*
	Function Name : insertDB
	Usage : DB에 신규 데이터 삽입
	Arguments : string[테이블 이름], array{넣을 값}, array{컬럼명}
	Return : null
*/
function insertDB($table_name, $value_arr, $column_arr){
	global $dbConn;
	if(!$dbConn){ $dbConn = connectDB(); }
	
	$cnt_value_arr = count($value_arr); //벨류 갯수

	foreach ($value_arr as $key => $value){
		$value = mysql_real_escape_string($value);
		
		if($key == $cnt_value_arr - 1){
			$insert_value .= "'$value'";
		}else{
			$insert_value .= "'$value', ";
		}
	}
	
	if($column_arr){
		$cnt_column_arr = count($column_arr); //컬럼 갯수
		
		if($cnt_value_arr != $cnt_column_arr){
			alert("데이터베이스 입력 오류","입력하려는 데이터와 데이터베이스의 테이블 갯수가 일치 하지 않습니다.");
		}
		
		foreach ($column_arr as $key => $value){
			$value = mysql_real_escape_string($value);
			if($key == ($cnt_column_arr - 1)){
				$column_value .= "$value";
			}else{
				$column_value .= "$value, ";
			}
		}
		$query = "INSERT INTO $table_name ($column_value) VALUES ($insert_value)";
	}else{
		$query = "INSERT INTO $table_name VALUES ($insert_value)";
	}
	
	executeDB($query);
}



/*
	Function Name : updateDB
	Usage : DB에 데이터 갱신
	Arguments : string[테이블 이름], array{넣을 값}, array{컬럼명}, string[조건절]
	Return : null
*/
function updateDB($table_name, $value_arr, $column_arr, $condition){
	global $dbConn;
	if(!$dbConn){ $dbConn = connectDB(); }
	
	$cnt_value_arr = count($value_arr); //벨류 갯수
	
	for($i=0; $i < $cnt_value_arr; $i++){
		$update_value = mysql_real_escape_string($value_arr[$i]);
		$update_column = $column_arr[$i];
		
		if($i == ($cnt_value_arr-1)){
			$update_query .= $update_column . "=" . "'$update_value'";
		}else{
			$update_query .= $update_column . "=" . "'$update_value'" . ", ";
		}
		
	}
	
	$query = "UPDATE $table_name SET $update_query WHERE $condition";
	
	executeDB($query);
}

/*
	Function Name : selectDB
	Usage : DB에서 데이터 셀렉트
	Arguments : string[테이블 이름], array{컬럼명}, string[WHERE 조건절], string[JOIN 조건절]
	Return : array $return
*/
function selectDB(){
	global $dbConn;
	$args = func_get_args();
	$numargs = count($args);
	
	if(!$dbConn){ $dbConn = connectDB(); }

	$cnt_column_arr = count($args[1]); //컬럼 갯수
	
	for($i=0; $i < $cnt_column_arr; $i++){
					
		if($i == ($cnt_column_arr-1)){
			$select_query .= $args[1][$i];
		}else{
			$select_query .= $args[1][$i] . ", ";
		}
		
	}
	
	$args[1] = $select_query;
	
	if($numargs == 2){
		$query = "SELECT $args[1] FROM $args[0]";
	}else if($numargs == 3){
		$query = "SELECT $args[1] FROM $args[0] WHERE $args[2]";
	}else if($numargs == 4){
		$query = "SELECT $args[1] FROM $args[0] $args[3] WHERE $args[2]";
	}else{
		alert("데이터베이스 오류", "알 수없는 데이터베이스 오류가 발생했습니다.<br/>메인으로 돌아갑니다.");
		exit;
	}
	
	$result = mysql_query($query, $dbConn);
	
	while($row = mysql_fetch_array($result, MYSQL_BOTH)) {
		$return[] = $row;
	}

	return $return;
	
}

/*
	Function Name : selectDBQ
	Usage : DB에서 데이터 셀렉트 by Custom Query
	Arguments : SQL Query
	Return : array $return
*/
function selectDBQ($cQuery){
	global $dbConn;
	
	if(!$dbConn){ $dbConn = connectDB(); }

	
	if($cQuery){
		$query = $cQuery;
	}else{
		alert("데이터베이스 오류", "알 수없는 데이터베이스 오류가 발생했습니다.<br/>메인으로 돌아갑니다.");
		exit;
	}
	
	$result = mysql_query($query, $dbConn);
	
	while($row = mysql_fetch_array($result, MYSQL_BOTH)) {
		$return[] = $row;
	}
	
	return $return;
}

/*
	Function Name : executeDB
	Arguments : string[쿼리문]
	Return : MySQL 쿼리 에러 번호
*/
function executeDB($query){
	
	global $dbConn;
	if(!$dbConn){ $dbConn = connectDB(); }
	
	mysql_query($query, $dbConn);
	$resultNo = mysql_errno($dbConn);
	$resultMsg = mysql_error($dbConn);
	
	return $resultNo;
	
	if($resultNo != 0){
		alert("데이터베이스 오류 - $resultNo", "$resultMsg<br/>관리자에게 해당 메세지와 함께 문의하여 주시기 바랍니다.");
	}
	
	if($dbConn){ mysql_close($dbConn); }
}

/*
	Function Name : goPage
	Arguments : string[이동URL]
	Return : Null
*/
function goPage($url){
	echo "<script type=\"text/javascript\">location.href=\"$url\";</script>";
}


/*
	Function Name : sessionCheck()
	Arguments : null
	Return : null
*/
function sessionCheck(){
	session_start();
	if(!$_SESSION['userid'] && !$_SESSION['username'] && !$_SESSION['partboss'] && !$_SESSION['teamboss']){
		@session_unset();
		@session_destroy();
		alert("비정상적 접근", "정상적이지 않은 접근이므로<br/>메인 페이지로 이동합니다.");
		exit;
	}else{
		global $userid;
		global $username;
		global $partcode;
		global $partboss;
		global $teamboss;
		
		$userid = $_SESSION['userid'];
		$username = $_SESSION['username'];
		$partcode = $_SESSION['partcode'];
		$partboss = $_SESSION['partboss'];
		$teamboss = $_SESSION['teamboss'];
	}
}

/*
	Function Name : pageing()
	Arguments : int tRow(전체 데이터 row개수), int cPage(현재 페이지), int pageRow(한 페이지당 갯수)
	Return : pagingModule[HTML]
*/
function paging($tRow, $cPage, $pageRow){
$blockSet = 10; //페이지당 블록 갯수
$totalPage = ceil($tRow / $pageRow); //총 페이지 갯수
$totalBlock = ceil($totalPage / $blockSet); //총 페이지블럭 갯수
$currentBlock = ceil($cPage / $blockSet); //현재 페이지 블럭 위치
$firstPage = (($currentBlock -1) * $blockSet) + 1; //첫번째 페이지 번호
$lastPage = min($totalPage, $currentBlock * $blockSet); //마지막 페이지 번호
$prevPage = $cPage - 1; //이전 페이지
if($prevPage <= 0){
	$prevPage = "'prev'";
	$prevClass = "disabled";
}
$nextPage = $cPage + 1; //다음 페이지
if($nextPage > $totalPage){
	$nextPage = "'next'";
	$nextClass = "disabled";
}

echo "<div class=\"pagination pagination-centered\">";
echo "	<ul>";
echo "		<li class=\"$prevClass\"><a href=\"javascript:goPaging($prevPage)\">«</a></li>";
for($i = $firstPage; $i <= $lastPage; $i++){
	if($cPage == $i){
		echo "<li class=\"active\"><a href='javascript:return false'>$i</a></li>";
	}else{
		echo "<li><a href=\"javascript:goPaging($i)\">$i</a></li>";
	}
}
echo "		<li class=\"$nextClass\"><a href=\"javascript:goPaging($nextPage)\">»</a></li>";
echo "	</ul>";
echo "</div>";
	
}


?>